package moe.net.util;

import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.util.JMeterUtils;

import java.io.File;

public class StressTestUtil {

    /**
     * 获取Jmeter的home目录，临时写法，后续部署上线前会调整
     */
    public static String getJmeterHome() {
        try {
//            return StressTestUtil.class.getClassLoader().getResource("jmeter").getPath();
            // 开发环境临时路径
            String path = "D:\\program\\apache-jmeter-5.6.2";
            return path;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

    }

    /**
     * 获取Jmeter的bin目录
     */
    public static String getJmeterHomeBin() {
        return getJmeterHome() + File.separator + "bin";
    }


    /**
     * 设置JMeter的属性, 可以不触发调用
     */
    public static void initJmeterProperties() {
        // 获取JMeter的安装目录
        String jmeterHome = getJmeterHome();
        String jmeterHomeBin = getJmeterHomeBin();
        // 加载jmeter.properties文件
        JMeterUtils.loadJMeterProperties(jmeterHomeBin + File.separator + "jmeter.properties");
        // 设置JMeter的安装目录
        JMeterUtils.setJMeterHome(jmeterHome);
        //避免中文乱码
        JMeterUtils.setProperty("sampleresult.default.encoding", "UTF-8");
        // 初始化本地环境
        JMeterUtils.initLocale();
        // 获取JMeter的属性文件
        //Properties jmeterProps = JMeterUtils.getJMeterProperties();

    }


    /**
     * 获取自定义jmeter压测引擎,封装方法，统一返回对象，后续改动则方便
     *
     * @return
     */
    public static StandardJMeterEngine getJmeterEngine() {
        //初始化配置
        initJmeterProperties();
        StandardJMeterEngine standardJMeterEngine = new StandardJMeterEngine();
        return standardJMeterEngine;
    }

}